The present invention generally relates to testing computing arrangements, and more particularly to generating sets of parameter values for test scenarios.
Exhaustive system-level testing of a complex data processing system is unfeasible because there are too many capabilities to test within a reasonable period of time. Therefore, testing is often focused in areas that are likely to be prone to error or critical areas.
A function test is used to determine whether the system correctly performs the function under test. Function tests are useful for verifying correct behavior of the system when performing various functions of the system. However, complex and unpredictable interactions between system functions are difficult to address with function testing because of the number of different functions to be tested.
To cover system behavior not addressed by testing at the function level, the function-level tests are sometimes randomly combined in hopes of creating conditions that test previously uncovered areas of system behavior. Unfortunately, with large systems, the number of possible random combinations and time required to run each test make running enough tests to cover all desired tests areas unfeasible. Thus, test coverage using random combinations of function tests is unpredictable.
If the system-level testing is weighted too heavily toward function testing, complex and unpredictable interactions between components may go untested. Similarly, if the system-level testing is weighted too heavily toward random tests, testing of some critical functions may be overlooked.
A method and apparatus that addresses the aforementioned problems, as well as other related problems, are therefore desirable.
In various embodiments, the invention provides a method and apparatus for creating sets of parameters values for scenarios for testing a computing arrangement. A plurality of parameter definitions are established along with an initial set of parameter values that correspond to the parameter definitions. A target data set describes a performance characteristic of the computing arrangement. In a first phase of parameter optimization, each parameter value is adjusted one at a time while measuring the performance characteristic after adjusting the parameter value. In addition, level of change of the performance characteristic relative to the performance characteristic at a previous parameter value is measured. When the performance characteristic satisfies selected criteria relative to the target data set another parameter value is selected for adjustment. The parameters are assigned to groups as a function of levels of change of the performance characteristics. In a second phase of parameter optimization, each parameter value is adjusted in order of parameters in groups that exhibit greater levels of change of the performance characteristic to parameters in groups that exhibit lesser levels of change of the performance characteristic, the performance characteristic is measured after adjusting each parameter value, and when the performance characteristic satisfies selected criteria relative to the target data set another parameter value is selected for adjustment.
The above summary of the present invention is not intended to describe each disclosed embodiment of the present invention. The figures and detailed description that follow provide additional example embodiments and aspects of the present invention.